<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Massiivid ehk Arrayd</title>
    </head>
    <body>
        <?php
            /*
             * Arraysid ehk eesti keeles massiive võib ette kujutada, kui üksteise 
             * järgi paiknevat muutujate hulka, millele saab määrata järjekorra
             * numbri ning temale vastavat muutujaväärtust. 
             * 
             * Massiivist andmete kättesaamiseks tuleb viidata soovitud muutuja 
             * asukohale massiivis. 
             */
             $array_ehk_massiiv = array(2, 3, 4, 6, 8, 10, 44, 57);
             //Massiivide puhul tuleb meeles pidada, et massiivis olevaid väärtusi
             //hakatakse indekseerima alates väärtusest 0. Seega, kui tahta 
             //massiivist kätte saada esimest väärtust, tuleks mõelda sellele, kui 
             //nullindale väärtusele. (Meeldejäämist soodustab ehk seos, et 
             //inglise keeles on meie mõistes esimene korrus
             //nende ground floor, meie mõistes teine korrus aga nende first floor)
             echo $array_ehk_massiiv[0];
             echo '<br/>';
             echo $array_ehk_massiiv[1];
             echo '<br/>';
             //Oletame, et me ei tea massiivi pikkust (s.t. mitu elementi on massiivis),
             // aga tahan sealt eelviimast väärtust. Massiivis säilitavate elementide arvu
             // teadasaamiseks kasutame funktsiooni count(). Eelviimase 
             //koha saamiseks peame array pikkusest lahutama aga -1, sest 
             //mäletatavasti hakati arrayd loendama väärtusest 0 alates. 
             echo $array_ehk_massiiv[count($array_ehk_massiiv)-1];
             echo '<br/>';
             
             /*
              * Array sisse saab aga ka omakorda array-sid panna. 
              */
             $massiivMassiivis = array('üks', 'kaks', 'kaks koma viis', 'neli', array('viis', 
                 'kuus', 'seitse'));
             /*
              * Et sellises arrayst väärtust "kuus" kätte saada, tuleb toimida
              * järgnevalt. Massiivis olev teine massiiv asub välises massiivis 
              * neljanda elemendi juures (muidu viienda, aga alustatakse nullist).
              * Seega esmalt tuleb viidata sellele. Nüüd tuleb aga viidata teise
              * massiivi esimesele elemendile (muidu teisele, aga tuleb meelde tuletada,
              * et lugemist alustatakse massiivide puhul nullist.)
              */
             echo 'Väärtuse "kuus" saab kahemõõtmelisest massivist: ' . 
                       $massiivMassiivis[4][1];
             echo '<br/>';
             //Teades, et kuus oli teise massiivi eelviimane väärtus oleks võinud
             //toimida ka pikemalt
             echo 'Väärtuse "kuus" saab kahemõõtmelisest massivist mitut moodi: ' . 
                       $massiivMassiivis[4][count($massiivMassiivis[4])-2];
             echo '<br/>';
             //Muudame massiivis väärtuse "kaks koma viis" väärtuseks "kolm".
             //Teame, et "kaks koma viis" indeks massiivis on 2. Muudame väärtuse:
             echo 'Eelnev väärtus positsioonil 2: ' . $massiivMassiivis[2];
             $massiivMassiivis[2] = 'kolm';
             echo '<br/>';
             echo 'Uus väärtus positsioonil 2: ' . $massiivMassiivis[2];  
             echo '<br/>';
             
             //Numbriliste indeksite asemel saab massiivi indeksiks märkida ka 
             //silte, ehk inglise keeles label'eid.(ingl k. associative arrays)
             $massiivSiltidega = array('veearve' => 8.50, 'elektriarve' => 30.75, 
                 'mobiilse_interneti_arve' => 'Kohale jõudmata!');
             //Säärasest massiivist väärtuste saamisel tuleb toimida nii, et 
             //indeksi asemel tuleb [] sisse sisestada sildi nimi.
             echo "Elektriarve on see kuu: " . $massiivSiltidega['elektriarve'];
             echo '<br/>';
             echo 'Veearve on see kuu: ' . $massiivSiltidega['mobiilse_interneti_arve'];
             echo '<br/><br/><br/>';
             
             
             /*
              * Vigade otsimiseks on vahel vaja aga terve massiiv korraga välja 
              * printida. Ükshaaval indekseid sisestama hakata oleks liialt 
              * aeganõudev. Selle jaoks, et kogu massiivi sisu korraga välja 
              * printida on olemas mitu võimalust, mida alljärgnevalt vaatleme.
              * print_r() tähendab print readable, ehk massiivist üritatakse 
              * välja printida tavapäraselt loetav versioon
              */
              print_r($massiivMassiivis);
              echo '<br/>';
              echo '<br/>'; ?> <!--Pane tähele, et lõpetasime korraks PHP
              interpretaatori töö. Nüüd sõelutakse (parse'takse) html tage-->
              
        
              <!--Pannes sama käsu html tagide <pre></pre> vahele, prinditakse andmed 
               välja seda vormindamata-->
               <p>Vormindamata kujul massiivi väljaprint:</p>
               <pre><?php print_r($massiivMassiivis); ?></pre>
              
               <p>
                   Meetod var_dump annab sellise detailse väljaprindi. Iseloomustatakse
                   massiivi elementide arvu, kui ka säilitatavaid andmetüüpe.
               </p>
               <?php var_dump($massiivMassiivis); ?> 
               
               <p>
                   Prindime järgnevalt kõigi meetoditega välja ka associative array
                   ehk siltidega viidatava massiivi andmed, mille eespool koostasime.
               </p>
               <?php print_r($massiivSiltidega); ?>
               <pre><?php print_r($massiivSiltidega); ?></pre>
               <?php var_dump($massiivSiltidega); ?>
               
    </body>
</html>
